1. Field of the Invention
The present invention relates to electronics and, more specifically, to filters such as finite impulse response (FIR) filters.
2. Description of the Related Art
This section introduces aspects that may help facilitate a better understanding of the invention. Accordingly, the statements of this section are to be read in this light and are not to be understood as admissions about what is prior art or what is not prior art.
FIG. 1 shows a schematic block diagram of a typical implementation of a generic, conventional finite impulse response (FIR) filter 100 that converts an input, serial bitstream 102 into a filtered, output signal 110. The z-domain transfer function H(z) for a discrete-time implementation of FIR filter 100 is given by the following equation:H(z)=Y(z)/X(z)=c−m*z−m+ . . . +c−1*z−1+c0+c1*z1+ . . . +cn*zn,where X(z) is the z-domain input signal 102, Y(z) is the z-domain output signal 110, c0 is the current tap coefficient; c−1, . . . , c−m are the m pre-cursor tap coefficients; and c1, . . . , cn are the n post-cursor tap coefficients. The number m of pre-cursor tap coefficients and the number n of post-cursor tap coefficients will depend on the desired filter characteristics. Note that, depending on the particular filter transfer function, either m or n could be, but do not have to be, zero.
As shown in FIG. 1, the input bitstream 102 is sequentially delayed by a delay chain consisting of (m+n) delays 104. The corresponding delayed 1-bit samples are multiplied by corresponding tap coefficient values c−m, . . . , cn at multipliers 106, and the resulting weighted samples are combined at summation node 108 to generate the filtered, output signal 110.
An integrated circuit may need to be able to apply different FIR filters having different transfer functions with different numbers of pre-cursor and/or post-cursor taps to a data stream at different times. For example, for some communications applications, pre-de-emphasis filtering is applied to compensate for losses due to transmit channel characteristics. For such applications, it is desirable to implement transmit drivers having flexible FIR filters to compensate for different channel characteristics.
One conventional solution is to implement the integrated circuit with multiple FIR filters, each one having a different configuration of pre-cursor and post-cursor taps. Another conventional solution is to implement the integrated circuit with a single FIR filter having the maximum number of pre-cursor taps for any supported transfer function and the maximum number of post-cursor taps for any supported transfer function so that any of the different supported transfer functions can be implemented by assigning coefficient values of zero to any taps that are not needed for a particular FIR filter. These conventional solutions are not optimally efficient.